{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7d48a05b-397d-4bda-84ee-0dbc497d8e15",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据的随机 5 个样本：\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>feature_0</th>\n",
       "      <th>feature_1</th>\n",
       "      <th>feature_2</th>\n",
       "      <th>feature_3</th>\n",
       "      <th>feature_4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>350</th>\n",
       "      <td>-2.703232</td>\n",
       "      <td>0.677875</td>\n",
       "      <td>-0.654076</td>\n",
       "      <td>-1.830633</td>\n",
       "      <td>0.511203</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>576</th>\n",
       "      <td>-2.238231</td>\n",
       "      <td>-2.120700</td>\n",
       "      <td>-0.606865</td>\n",
       "      <td>0.457687</td>\n",
       "      <td>-2.747505</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>-1.183259</td>\n",
       "      <td>-2.039232</td>\n",
       "      <td>-0.269407</td>\n",
       "      <td>0.717542</td>\n",
       "      <td>1.502357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>-0.334501</td>\n",
       "      <td>-0.474945</td>\n",
       "      <td>-0.653329</td>\n",
       "      <td>1.765454</td>\n",
       "      <td>0.404982</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>523</th>\n",
       "      <td>0.668340</td>\n",
       "      <td>-0.734174</td>\n",
       "      <td>0.081996</td>\n",
       "      <td>0.457280</td>\n",
       "      <td>1.455822</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     feature_0  feature_1  feature_2  feature_3  feature_4\n",
       "350  -2.703232   0.677875  -0.654076  -1.830633   0.511203\n",
       "576  -2.238231  -2.120700  -0.606865   0.457687  -2.747505\n",
       "86   -1.183259  -2.039232  -0.269407   0.717542   1.502357\n",
       "49   -0.334501  -0.474945  -0.653329   1.765454   0.404982\n",
       "523   0.668340  -0.734174   0.081996   0.457280   1.455822"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "每个主成分的方差贡献率： [0.21317374 0.20673462 0.19821096 0.19456769 0.18731299]\n",
      "累计方差贡献率： [0.21317374 0.41990835 0.61811932 0.81268701 1.        ]\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 20027 (\\N{CJK UNIFIED IDEOGRAPH-4E3B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 25104 (\\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 20998 (\\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 26041 (\\N{CJK UNIFIED IDEOGRAPH-65B9}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 24046 (\\N{CJK UNIFIED IDEOGRAPH-5DEE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 36129 (\\N{CJK UNIFIED IDEOGRAPH-8D21}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 29486 (\\N{CJK UNIFIED IDEOGRAPH-732E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 27599 (\\N{CJK UNIFIED IDEOGRAPH-6BCF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 20010 (\\N{CJK UNIFIED IDEOGRAPH-4E2A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 32047 (\\N{CJK UNIFIED IDEOGRAPH-7D2F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\zhaun\\AppData\\Local\\Temp\\ipykernel_10748\\2084564741.py:43: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26041 (\\N{CJK UNIFIED IDEOGRAPH-65B9}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 24046 (\\N{CJK UNIFIED IDEOGRAPH-5DEE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36129 (\\N{CJK UNIFIED IDEOGRAPH-8D21}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29486 (\\N{CJK UNIFIED IDEOGRAPH-732E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27599 (\\N{CJK UNIFIED IDEOGRAPH-6BCF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20010 (\\N{CJK UNIFIED IDEOGRAPH-4E2A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20027 (\\N{CJK UNIFIED IDEOGRAPH-4E3B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 25104 (\\N{CJK UNIFIED IDEOGRAPH-6210}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20998 (\\N{CJK UNIFIED IDEOGRAPH-5206}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32047 (\\N{CJK UNIFIED IDEOGRAPH-7D2F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "E:\\Program\\anaconda\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 37327 (\\N{CJK UNIFIED IDEOGRAPH-91CF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1200x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "np.random.seed(42)\n",
    "n_samples = 1000\n",
    "n_features = 5\n",
    "X = np.random.randn(n_samples, n_features)\n",
    "\n",
    "data = pd.DataFrame(X, columns=[f'feature_{i}' for i in range(n_features)])\n",
    "\n",
    "print(\"数据的随机 5 个样本：\")\n",
    "display(data.sample(5))\n",
    "\n",
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(data)\n",
    "\n",
    "pca = PCA()\n",
    "X_pca = pca.fit_transform(X_scaled)\n",
    "\n",
    "explained_variance_ratio = pca.explained_variance_ratio_\n",
    "print(\"每个主成分的方差贡献率：\", explained_variance_ratio)\n",
    "\n",
    "cumulative_explained_variance = np.cumsum(explained_variance_ratio)\n",
    "print(\"累计方差贡献率：\", cumulative_explained_variance)\n",
    "\n",
    "plt.figure(figsize=(12, 6))\n",
    "\n",
    "plt.subplot(1, 2, 1)\n",
    "plt.bar(range(1, len(explained_variance_ratio) + 1), explained_variance_ratio)\n",
    "plt.xlabel('主成分')\n",
    "plt.ylabel('方差贡献率')\n",
    "plt.title('每个主成分的方差贡献率')\n",
    "\n",
    "plt.subplot(1, 2, 2)\n",
    "plt.plot(range(1, len(cumulative_explained_variance) + 1), cumulative_explained_variance)\n",
    "plt.xlabel('主成分数量')\n",
    "plt.ylabel('累计方差贡献率')\n",
    "plt.title('累计方差贡献率')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2c01056f-fbd3-44a9-a8a5-0ed23b3aa96f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:base] *",
   "language": "python",
   "name": "conda-base-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
